package com.sd.sdk.core.bean;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * 请求参数接口
 * @param <T>
 * @author xy
 */
public interface ApiReq<T> {

    /**
     * 接口地址
     * @return 接口地址
     */
    String getUrl();

    /**
     * 响应类型
     * @return 响应类型
     */
    default Class<T> getRespClass() {
        Type genericInterface = this.getClass().getGenericInterfaces()[0];
        if (genericInterface instanceof ParameterizedType) {
            //noinspection unchecked
            return (Class<T>) ((ParameterizedType) genericInterface).getActualTypeArguments()[0];
        }
        //noinspection unchecked
        return(Class<T>) Void.class;
    }




}
